/*
 * Copyright (c) 2007-2021 西安交通信息投资营运有限公司 版权所有
 */

package com.xci.xajtfb.bus.service;

import com.xci.xajtfb.bus._core.BusBaseService;
import com.xci.xajtfb.bus.dao.TbBusLineDao;
import com.github.lvyanyang.core.PageList;
import com.xci.xajtfb.bus.entity.LineInfo;
import com.xci.xajtfb.bus.entity.TbBusLine;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * 公交线路服务
 * @author 吕艳阳 lvyanyang@xci96716.com
 * @since 2021-02-05 17:30:26
 */
@Service
public class TbBusLineService extends BusBaseService {
    /** 数据层对象 */
    @Resource private TbBusLineDao tbBusLineDao;

    /**
     * 根据主键查询单个
     * @param id 主键
     * @return 返回实体
     */
    public Map<String,Object> selectById(@NotNull(message = "请指定主键") Long id) {
        return tbBusLineDao.selectById(id);
    }

    /**
     * 根据名称查询（模糊）
     * @param name 名称
     * @return 返回实体
     */
    public List<Map<String, Object>> selectByName(@NotBlank(message = "请输入线路名称") String name) {
        return tbBusLineDao.selectByName(name);
    }

    /**
     * 查询线路列表
     * @return 返回线路列表
     */
    public TbBusLine selectByRouteId(@NotBlank(message = "请输入线路名称") String routeId) {
        return tbBusLineDao.selectByRouteId(routeId);
    }

    /**
     * 查询线路首末班时间及票价
     * @return 返回线路列表
     */
    public Map<String,Object> getSegmentInfo(@NotBlank(message = "请输入线路名称") String routeId) {
        return tbBusLineDao.getSegmentInfo(routeId);
    }

    /**
     * 查询线路列表
     * @return 返回线路列表
     */
    public LineInfo selectLineInfoByRouteId(@NotBlank(message = "请输入线路名称") String routeId) {
        return tbBusLineDao.selectLineInfoByRouteId(routeId);
    }

    /**
     * 查询列表
     * @return 返回线路列表
     */
    public List<TbBusLine> selectList() {
        return tbBusLineDao.selectList();
    }

    /**
     * 查询分页列表
     * @param filter 过滤条件
     * @return 返回分页列表
     */
    public PageList<Map<String,Object>> selectPageList(Map<String,Object> filter) {
        return PageList.of(tbBusLineDao.selectPageList(filter));
    }
}